home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PWAULTP3.ZIP
/
PWAPRGMS.A02
/
PWA95
/
PWAEUS20.ZIP
/
USER.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-03-26
|
8KB
|
599 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
Boolean BOOLEAN006
Boolean BOOLEAN007
Boolean BOOLEAN008
Boolean BOOLEAN009
Boolean BOOLEAN010
Boolean BOOLEAN011
Boolean BOOLEAN012
DWord DWORD001
DWord DWORD002
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String TSTRING011(1)
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING019
String STRING021
String STRING023
String STRING024
Int INT001
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int TINT008(1)
Int INT011
Int INT012
Int INT015
Int INT017
Int INT018
BigStr BIGSTR001
Declare Function FUNCTION001(Int INT014, String STRING018) String
Declare Function FUNCTION002(Int INT013) Boolean
Declare Function FUNCTION003(String STRING020) Boolean
Declare Function FUNCTION004(Int INT016, String STRING022) DWord
Declare Procedure PROC001()
Declare Procedure PROC002(Int INT010)
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
Declare Procedure PROC007()
;------------------------------------------------------------------------------
PROC004()
PROC006()
PROC001()
End
;------------------------------------------------------------------------------
Procedure PROC006()
Boolean BOOLEAN007
If (FUNCTION004(16, STRING001) <> 60976) End
Newline
If (BOOLEAN003 == 0) Then
PrintLn STRING004
Print STRING005
InputStr "_", STRING010, 7, 25, Mask_AlNum(), 8192 + 8
Newline
If (STRING010 == "") Then
BOOLEAN002 = 0
Endif
Else
BOOLEAN007 = 0
:LABEL001
If (BOOLEAN007) Goto LABEL002
Print STRING006
InputStr "_", STRING010, 7, 1, "sSrR" + Chr(13), 8 + 8192
Newline
Select Case (STRING010)
Case "", "r", "R"
PROC007()
BOOLEAN002 = 0
BOOLEAN007 = 1
Case "s", "S"
Print STRING005
InputStr "_", STRING010, 7, 25, Mask_AlNum(), 8192 + 8
Newline
If (STRING010 == "") Then
BOOLEAN002 = 0
Endif
BOOLEAN007 = 1
End Select
Goto LABEL001
Endif
:LABEL002
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
String STRING012
STRING007 = ReplaceStr(STRING007, "%#", String(INT002))
Print STRING007
InputStr "_", STRING012, 7, 9, Mask_Num() + "-", 8192 + 8
Newline
If (STRING012 == "0") Then
PrintLn "@X0CAborted.@X07"
End
Endif
If (STRING012 <> "") Then
STRING012 = ReplaceStr(STRING012, "-", ";")
Tokenize STRING012
INT005 = S2I(GetToken(), 10)
INT006 = S2I(GetToken(), 10)
Endif
If ((INT005 < 1) || (INT005 > INT002)) INT005 = 1
If ((INT006 > INT002) || (INT006 < 1)) INT006 = INT002
If (INT005 > INT002) Then
INT005 = 1
INT006 = INT002
Endif
If (FUNCTION004(1, STRING001) % 2 <> 1) Then
INT005 = 0
INT006 = 0
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
Int INT009
FOpen 1, ReadLine(PCBDat(), 29), 0, 0
FClose -1
If (Exist(PPEPath() + "user.top")) Then
DispFile PPEPath() + "user.top", 0
Endif
If (FUNCTION004(5, STRING001) <> 19055) End
If (INT005 > 1) Then
FSeek 1, (INT005 - 1) * 400, 1
Endif
For INT009 = INT005 To INT006
FRead 1, BIGSTR001, 400
If (BOOLEAN002 == 1) Then
If (InStr(Lower(Mid(BIGSTR001, 1, 25)), Lower(STRING010))) Then
PROC002(INT009)
Endif
Else
PROC002(INT009)
Endif
If (Abort()) Then
INT009 = INT002
Endif
Next
FClose 1
FClose 3
If (Abort()) Then
Newline
Else
PROC005()
Endif
PROC003()
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
String STRING013
If (Exist(PPEPath() + "USER.BOT")) Then
FOpen 1, PPEPath() + "USER.BOT", 0, 2
FDefIn 1
FDGet STRING013
:LABEL003
If (Ferr(1)) Goto LABEL005
STRING013 = ReplaceStr(STRING013, "%tu", String(INT003))
STRING013 = ReplaceStr(STRING013, "%tl", String(INT001))
If (INT003) Then
STRING013 = ReplaceStr(STRING013, "%pl", String(ToInt(100 * (ToReal(INT001) / ToReal(INT003)))))
Goto LABEL004
Endif
STRING013 = ReplaceStr(STRING013, "%pl", "0")
:LABEL004
PrintLn STRING013
FDGet STRING013
Goto LABEL003
:LABEL005
FClose 1
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC002(Int INT010)
String STRING014
String STRING015
String STRING016
String STRING017
Int INT011
Int INT012
Boolean BOOLEAN008
STRING016 = STRING009
BOOLEAN008 = 1
If (BOOLEAN001) Then
BOOLEAN008 = FUNCTION002(INT010)
Endif
If (BOOLEAN008) Then
INT012 = S2I(Asc(Mid(BIGSTR001, 108, 1)), 10)
If (INT012 >= INT004) Then
STRING017 = RTrim(String(Mid(BIGSTR001, 1, 25)), " ")
If (BOOLEAN005) Then
BOOLEAN008 = !FUNCTION003(STRING017)
Endif
STRING016 = ReplaceStr(STRING016, "%#", String(INT010))
STRING016 = ReplaceStr(STRING016, "%a", STRING017)
STRING016 = FUNCTION001(INT012, STRING016)
STRING016 = ReplaceStr(STRING016, "%b", RTrim(String(Mid(BIGSTR001, 26, 24)), " "))
STRING014 = ""
STRING015 = String(Mid(BIGSTR001, 75, 13))
For INT011 = 1 To Len(STRING015)
If (InStr(Mask_Num() + "+", Mid(STRING015, INT011, 1)) > 0) Then
STRING014 = STRING014 + Mid(STRING015, INT011, 1)
Endif
If (Len(STRING014) >= 3) Break
Next
If (STRING014 <> STRING003) Then
Inc INT001
STRING016 = ReplaceStr(STRING016, "%c", STRING002 + STRING014)
Goto LABEL006
Endif
STRING016 = ReplaceStr(STRING016, "%c", STRING014)
:LABEL006
STRING015 = Left(Right(STRING014, 4), 2) + "-" + Right(STRING014, 2) + "-" + Left(STRING014, 2)
STRING016 = ReplaceStr(STRING016, "%d", Mid(BIGSTR001, 90, 2) + "-" + Mid(BIGSTR001, 92, 2) + "-" + Mid(BIGSTR001, 88, 2))
STRING016 = ReplaceStr(STRING016, "%e", Mid(BIGSTR001, 94, 5))
STRING016 = ReplaceStr(STRING016, "%g", String(B2W(Asc(Mid(BIGSTR001, 110, 1)), Asc(Mid(BIGSTR001, 109, 1)))))
STRING016 = ReplaceStr(STRING016, "%h", String(B2W(Asc(Mid(BIGSTR001, 113, 1)), Asc(Mid(BIGSTR001, 112, 1)))))
STRING016 = ReplaceStr(STRING016, "%i", String(B2W(Asc(Mid(BIGSTR001, 115, 1)), Asc(Mid(BIGSTR001, 114, 1)))))
PrintLn STRING016
Inc INT003
Endif
Endif
EndProc
;------------------------------------------------------------------------------
Function FUNCTION002(Int INT013) Boolean
Int INT014
If (U_InConf(INT013, CurConf())) Then
FUNCTION002 = 1
Else
FUNCTION002 = 0
Endif
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION001(Int INT014, String STRING018) String
Boolean BOOLEAN010
Int INT015
String STRING020
If (!BOOLEAN004 && !BOOLEAN006) Then
STRING018 = ReplaceStr(STRING018, "%f", String(INT014))
ElseIf (BOOLEAN004 && !BOOLEAN006) Then
BOOLEAN010 = 0
For INT015 = 1 To INT007
If (TINT008(INT015) == INT014) Then
STRING018 = ReplaceStr(STRING018, "%f", TSTRING011(INT015))
BOOLEAN010 = 1
Break
Endif
Next
If (!BOOLEAN010) STRING018 = ReplaceStr(STRING018, "%f", String(INT014))
ElseIf (!BOOLEAN004 && BOOLEAN006) Then
If (CurSec() < INT014) Then
STRING018 = ReplaceStr(STRING018, "%f", STRING008)
Else
STRING018 = ReplaceStr(STRING018, "%f", String(INT014))
Endif
ElseIf (CurSec() < INT014) Then
STRING018 = ReplaceStr(STRING018, "%f", STRING008)
Else
BOOLEAN010 = 0
For INT015 = 1 To INT007
If (TINT008(INT015) == INT014) Then
STRING018 = ReplaceStr(STRING018, "%f", TSTRING011(INT015))
BOOLEAN010 = 1
Break
Endif
Next
If (!BOOLEAN010) STRING018 = ReplaceStr(STRING018, "%f", String(INT014))
Goto LABEL007
STRING018 = ReplaceStr(STRING018, "%f", String(INT014))
Endif
:LABEL007
FUNCTION001 = STRING018
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION003(String STRING020) Boolean
String STRING021
Boolean BOOLEAN012
BOOLEAN012 = 0
Frewind 3
FDGet STRING021
:LABEL008
If (Ferr(3)) Goto LABEL009
If (STRING021 == STRING020) Then
BOOLEAN012 = 1
Goto LABEL009
Else
FDGet STRING021
Endif
Goto LABEL008
:LABEL009
FUNCTION003 = BOOLEAN012
EndFunc
;------------------------------------------------------------------------------
Procedure PROC003()
Forward (79 - Len(StripAtx(STRING001))) / 2
PrintLn STRING001
EndProc
;------------------------------------------------------------------------------
Function FUNCTION004(Int INT016, String STRING022) DWord
DWord DWORD002
Int INT017
String STRING023
DWORD002 = 0
INT017 = 0
While (((1 < 0) && (INT017 >= Len(STRING022) - 1)) || ((1 >= 0) && (INT017 <= Len(STRING022) - 1))) Do
DWORD002 = DWORD002 + INT016 * Asc(Mid(STRING022, INT017, 1))
INT017 = INT017 + 1
EndWhile
FUNCTION004 = DWORD002
EndFunc
;------------------------------------------------------------------------------
Procedure PROC004()
String STRING023
String STRING024
Int INT018
INT001 = 0
STRING024 = PPEPath() + "USER.CFG"
STRING001 = "@X08Enhanced User Lister v2.0 by Drew [PWA]@X07"
INT003 = 0
FOpen 1, STRING024, 0, 2
INT002 = FileInf(ReadLine(PCBDat(), 29), 4) / 400
INT005 = 1
INT006 = INT002
FClose -1
If (FUNCTION004(8, STRING001) <> 30488) End
FDefIn 1
FDGet STRING023
If (Lower((STRING023 == "yes"))) Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
FDGet STRING023
If (Lower((STRING023 == "yes"))) Then
BOOLEAN002 = 1
Else
BOOLEAN002 = 0
Endif
FDGet STRING023
If (Lower((STRING023 == "yes"))) Then
BOOLEAN003 = 1
Else
BOOLEAN003 = 0
Endif
FDGet STRING023
If (Lower((STRING023 == "yes"))) Then
If (Exist(PPEPath() + "USER.SEC")) Goto LABEL010
BOOLEAN004 = 0
Log "Enhanced User Lister v2.0 - USER.SEC does not exist!", 0
Goto LABEL011
:LABEL010
BOOLEAN004 = 1
FOpen 3, PPEPath() + "USER.SEC", 0, 2
FGet 3, STRING023
INT007 = S2I(STRING023, 10)
Redim TSTRING011, INT007 + 1
Redim TINT008, INT007 + 1
For INT018 = 1 To INT007
FGet 3, STRING023
TINT008(INT018) = S2I(STRING023, 10)
FGet 3, TSTRING011(INT018)
Next
FClose 3
:LABEL011
Else
BOOLEAN004 = 0
Endif
FDGet STRING023
If (Lower((STRING023 == "yes"))) Then
FOpen 3, PPEPath() + "USER.EXC", 0, 2
BOOLEAN005 = 1
Else
BOOLEAN005 = 0
Endif
FDGet STRING023
If (Lower((STRING023 == "yes"))) Then
BOOLEAN006 = 1
Else
BOOLEAN006 = 0
Endif
FDGet STRING008
FDGet STRING023
INT004 = S2I(STRING023, 10)
FDGet STRING002
FDGet STRING003
FDGet STRING004
FDGet STRING005
FDGet STRING006
FDGet STRING007
FDGet STRING009
FClose 1
FDefIn 3
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 5 End
; 82 Goto
; 99 Let
; 4 Print
; 5 PrintLn
; 56 If
; 1 DispFile
; 5 FOpen
; 7 FClose
; 3 FGet
; 1 Log
; 4 InputStr
; 2 Inc
; 6 Newline
; 1 Tokenize
; 1 Forward
; 1 Frewind
; 1 FSeek
; 1 FRead
; 3 FDefIn
; 19 FDGet
; 2 Redim
; 7 EndProc
; 4 EndFunc
;
;
; ■ Functions used :
;
; 2 -
; 3 *
; 3 /
; 1 %
; 34 +
; 4 -
; 19 ==
; 6 <>
; 10 <
; 6 <=
; 5 >
; 14 >=
; 55 !
; 15 &&
; 11 ||
; 6 Len(
; 8 Lower()
; 18 Mid()
; 2 Left()
; 2 Right()
; 2 Ferr()
; 1 Chr()
; 8 Asc()
; 2 InStr()
; 2 Abort()
; 2 RTrim()
; 1 StripAtx()
; 16 String()
; 2 Mask_Num()
; 2 Mask_AlNum()
; 1 CurConf()
; 2 PCBDat()
; 8 PPEPath()
; 2 ReadLine()
; 2 CurSec()
; 2 GetToken()
; 3 B2W()
; 3 Exist()
; 6 S2I()
; 1 FileInf()
; 1 U_InConf()
; 25 ReplaceStr()
; 2 ToReal()
; 1 ToInt()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 5 For/Next
; 1 While/EndWhile
; 36 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------